#ifndef __CPPTUTORLINKEDLIST_H__
#define __CPPTUTORLINKEDLIST_H__

/* Structure for nodes of linked list*/
struct listnode
{
	int value;
	struct listnode * next;
};
typedef struct listnode node;
extern node *first, *save, *current;

class CcppTutorLinkedList
{
	public:
		CcppTutorLinkedList ();
	   ~CcppTutorLinkedList ();

		void LinkedList_main ();

	private:
		int choice,nodeValue,insertPos;

	private:
		node *getnode();
		void InsertAtStart(int x);
		void InsertAtEnd(int x);
		void InsertInMid(int n_no,int x);
		int DeleteNode(int kv);
		node * FindNode(int kv);
		void ReverseList();
		void SortList();
		void ClearList();
		void ShowList();
		int CountNodes();
};

#endif //__CPPTUTORLINKEDLIST_H__